<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class User extends Front_Controller {
	var $data = array();
	 public function __construct(){
        parent::__construct();
		$this->load->model('user_model');
         $this->load->model('captcha_model');
		$this->load->library(array('form_validation'));
    }
	public function index(){
		$data = array();
		$data['provinder_id'] = get_cookie ( COOKIE_PROVINCE_ID );
		$this->form_validation->set_rules('username', 'User Name', 'required');
		$this->form_validation->set_rules('password', 'Password', 'required');

		if ($this->form_validation->run() == TRUE){
			$username = $this->input->post('username');
			$password = $this->input->post('password');
			$data['username']=$username;
			$user = $this->user_model->checkLogin(array('username'=>$username,'password'=>$password));
			if(!empty($user)){
				$user['is_login'] = true;
				$this->session->set_userdata('member',$user);
				if($this->input->post('remember')==1){
					 //nho dang nhap 15 ngay
					set_cookie('r_u',$this->encrypt->encode($user['username']),360*7);
					set_cookie('r_p',$this->encrypt->encode($user['password']),360*7);
				}
				//redirect trang chu
				if($_SERVER['HTTP_REFERER']== site_url('dang-nhap')){
					//redirect('usercp/profile');
					redirect();
				}else {
					redirect($_SERVER['HTTP_REFERER']);
				}
			}else {
				$data['error_mgs'] = "Tên đăng nhập hoặc mật khẩu không đúng";
			}
		}

		$data['title']="Dang ky thanh vien";
        $data['category_id']=0;
		$this->layout->view($data);
	}
	public function register(){
		$data = array();

		$this->form_validation->set_rules('username', 'Tên đăng nhập', 'required|min_length[3]|callback_is_unique_username');
		$this->form_validation->set_rules('fullname', 'Họ và tên đầy đủ', 'required|min_length[4]');
		$this->form_validation->set_rules('email', 'Địa chỉ email', 'required|valid_email');
		$this->form_validation->set_rules('password', 'Mật khẩu', 'required|min_length[6]');
		$this->form_validation->set_rules('password_confirm', 'Nhắc lại mật khẩu', 'required|matches[password]');
		$this->form_validation->set_rules('mobile', 'Điện thoại', 'required|integer|min_length[10]|max_length[11]');
		$this->form_validation->set_rules('captcha', 'Mã an toàn', 'required|callback_is_validate_captcha');

		if ($this->form_validation->run() == TRUE){

			$data['username']		= strtolower(trim($this->input->post('username')));
			$data['email']			= $this->input->post('email');
			$data['password']		= md5($this->input->post('password'));
			$data['fullname']		= trim($this->input->post('fullname'));
			$data['mobile']			= $this->input->post('mobile');
			$data['hide_email'] 	= ($this->input->post('hide_email') )?"1":"0";
			$data['newsletter']		= ($this->input->post('newsletter'))? "1":0;
			$data['groundId']		= 2;
            $data['active_code'] 	= md5($this->input->post('email'));
            $data['createdTime'] 	= time();
			$data['status']			= 0;
			$data['post_status']	= 1;
			$data['banned']			= 0;
			$data['ip']				= $this->input->ip_address();

			$userid = $this->user_model->insert($data);
			if($userid) {
				$this->load->helper('mail');
				$forgot_code =  md5($this->input->post('email'));
				$data['activation_link'] = site_url("/register_active/".$forgot_code);
				send_mail_template($data['email'], 'register_active_user', '[Tinraovat.info] Kích hoạt tài khoản!',$data);
				redirect(site_url('dang-ky/thanh-cong'));
			}
			$data['errors'] ='Đăng ký thành viên bị lỗi do kết nối.';
		}
        $data['provinder_id'] = get_cookie ( COOKIE_PROVINCE_ID );
        $data['captcha'] = $this->captcha_model->make_captcha();
        $data['append_js']  =   $this->layout->js(array('assets/js/tooltip/form-field-tooltip.js','assets/js/tooltip/rounded-corners.js'));
        $data['append_css'] =   $this->layout->css(('assets/js/tooltip/form-field-tooltip.css'));
		$data['title']="Dang ky thanh vien";
        $data['category_id']=0;
		$this->layout->view($data);
	}

	//validate captcha
	function is_validate_captcha($str) {
        $this->load->library('session');
        if($this->securimage->check($str)==true){
            return true;
        }
        $this->form_validation->set_message ( 'is_captcha', '%s không chính xác' );
        return false;
	}
	//validate email
	function is_unique_email($email){
		$user = $this->user_model->getByEmail( $email);
		if($user!=null){
			$this->form_validation->set_message('is_unique_email', 'Địa chỉ email đã có người đăng ký');
			return false;
		}
		return true;
	}

	function is_unique_username($username){
		$username = strtolower(trim($username));
		$user = $this->user_model->getByUserName($username);
		if($user!=null){
			$this->form_validation->set_message('is_unique_username', 'Địa chỉ email đã có người đăng ký');
			return false;
		}
		return true;
	}

	//active dang ky
	public function register_active($activeCode){
		$data = array();
		$data['provinder_id'] = get_cookie ( COOKIE_PROVINCE_ID );
		$active = $this->user_model->active_user($activeCode);
		$data['title']="TinRaoVat.info";
		$this->layout->view($data);
	}
	public function success(){
		$data = array();
		$data['provinder_id'] = get_cookie ( COOKIE_PROVINCE_ID );
		$data['title']="rao vat ";
		$this->layout->view($data);
	}
	public function forget_password(){
		$data=array();
		$data['provinder_id'] = get_cookie ( COOKIE_PROVINCE_ID );
        $data['captcha'] = $this->captcha_model->make_captcha();
		$data['title']="TinRaoVat.info";
		$this->layout->view($data);
	}

    function captcha_check($code) {
        if($this->session->userdata('word')  == $code){
            return true;
        }
        return false;
    }
	function do_forget_password(){
		$data= array();
		$parram = array();
		$email = $this->input->post('email');
		$user = $this->user_model->getByEmail($email);
        $captcha = $this->captcha_check($this->input->post('captcha'));
		if($user || $captcha==false){
			$parram['flag'] 	= true;
			$parram['msg'] 	="<p><strong>Một Email đã được gửi đến ".$email.". Vui lòng kiểm tra email và làm theo hướng dẫn.</strong></p>";
			$this->load->helper('mail');
			$data['fullname'] 	= $user['fullname'];
			$data['email']		= $user['email'];
			$data['activation_link'] = site_url("/reset_password/".$user['forgot_code']);
			send_mail_template($email, 'forgot_password', '[Tinraovat.info] Lấy lại mật khẩu truy cập Raovathn.net!',$data);

		}else {
			$parram['flag'] 	= false;
			$parram['msg'] 	="<div class='msgError'>Lỗi:Không tồn tại user trong hệ thống</div>";
		}
		$this->output->enable_profiler(FALSE);
        $this->output->set_content_type('application/json')->set_output(json_encode($parram));
	}

	function reset_password($code){
		$data = array();
		$data['provinder_id'] = get_cookie ( COOKIE_PROVINCE_ID );
		$user = $this->user_model->reset_password($code);
		if($user){
			$this->load->helper('mail');
			send_mail_template($user['email'], 'forgot_reset_password','[Tinraovat.info] Lay lai mat khau truy cap Raovathn.net', $user);
			$data['msg'] = "Mật khẩu đã được gửi tới ".$user['email'].". Bạn vui lòng kiểm tra Email ({$user['email']}) của bạn để lấy mật khẩu đăng nhập";
		}else {
			$data['msg'] = "Mã kích hoạt mật khẩu mới không đúng";
		}
		$data['title']="Tinraovat.info";
		$this->layout->view($data);
	}

	public function logout(){
		$this->session->unset_userdata ('member');
		delete_cookie('r_u');
		delete_cookie('r_p');
		redirect();
	}

}
